<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.5"/>
<title>MCUXpresso SDK API Reference Manual: SDMA: Smart Direct Memory Access (SDMA) Controller Driver</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
  $(window).load(resizeHeight);
</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="customdoxygen.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><img alt="Logo" src="fs_logo.gif"/></td>
  <td style="padding-left: 0.5em;">
   <div id="projectname">MCUXpresso SDK API Reference Manual
   &#160;<span id="projectnumber">Rev. 0</span>
   </div>
   <div id="projectbrief">NXP Semiconductors</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.5 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li><a href="modules.html"><span>API&#160;Reference</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('group__sdma.html','');});
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#nested-classes">Data Structures</a> &#124;
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#enum-members">Enumerations</a>  </div>
  <div class="headertitle">
<div class="title">SDMA: Smart Direct Memory Access (SDMA) Controller Driver</div>  </div>
</div><!--header-->
<div class="contents">
<a name="details" id="details"></a><h2 class="groupheader">Overview</h2>
<p>The MCUXpresso SDK provides a peripheral driver for the Smart Direct Memory Access (SDMA) of devices.</p>
<h1><a class="anchor" id="SDMATypicalUseCase"></a>
Typical use case</h1>
<h2><a class="anchor" id="SDMAOper"></a>
SDMA Operation</h2>
<div class="fragment"><div class="line"><a class="code" href="group__sdma.html#structsdma__transfer__config__t">sdma_transfer_config_t</a> transferConfig;</div>
<div class="line"><a class="code" href="group__sdma.html#structsdma__config__t">sdma_config_t</a> userConfig;</div>
<div class="line">uint32_t transferDone = <span class="keyword">false</span>;</div>
<div class="line"></div>
<div class="line"><a class="code" href="group__sdma.html#ga928c1c71a8cea279eb941c8b239ece93">SDMA_GetDefaultConfig</a>(&amp;userConfig);</div>
<div class="line"><a class="code" href="group__sdma.html#ga63e5054d2b3e2ac6db0bc77a6e555f3c">SDMA_Init</a>(SDMAARM, &amp;userConfig);</div>
<div class="line"><a class="code" href="group__sdma.html#gaf777aa964e5cf03a07facf8deffd11ee">SDMA_CreateHandle</a>(&amp;g_SDMA_Handle, SDMAARM, channel);</div>
<div class="line"><a class="code" href="group__sdma.html#gadb5bdca472ad5039473cc53bf7f6ac6e">SDMA_SetCallback</a>(&amp;g_SDMA_Handle, SDMA_Callback, &amp;transferDone);</div>
<div class="line"><a class="code" href="group__sdma.html#ga15697d2f5295a1e844cfd129e9037bbe">SDMA_PrepareTransfer</a>(&amp;transferConfig, srcAddr, srcWidth, destAddr, destWidth,</div>
<div class="line">                     bytesEachRequest, transferBytes, <a class="code" href="group__sdma.html#ggadc1ce96deaaa5299e7370d6c162eb612ac6dc3f40b0bc146d1c896bec285e65d5">kSDMA_PeripheralTypeMemory</a>, <a class="code" href="group__sdma.html#ggac1b10d21cd1b227dd289eb0fad744ac2a093e03007b762e340d747d5d3b58334f">kSDMA_MemoryToMemory</a>);</div>
<div class="line"><a class="code" href="group__sdma.html#ga799b8c29ad2e816e2448ffabdd4a988e">SDMA_SetChannelPriority</a>(SDMAARM, channel, 2U);</div>
<div class="line"><a class="code" href="group__sdma.html#gac0e4a6a850beac832430a82be1257dd3">SDMA_SubmitTransfer</a>(&amp;g_SDMA_Handle, &amp;transferConfig);</div>
<div class="line"><a class="code" href="group__sdma.html#gad46a251361077e1a804de5ed1149c3ad">SDMA_StartTransfer</a>(&amp;g_SDMA_Handle);</div>
<div class="line"><span class="comment">/* Waits for the SDMA transfer to finish */</span></div>
<div class="line"><span class="keywordflow">while</span> (transferDone != <span class="keyword">true</span>);</div>
</div><!-- fragment --> <table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Data Structures</h2></td></tr>
<tr class="memitem:structsdma__config__t"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sdma.html#structsdma__config__t">sdma_config_t</a></td></tr>
<tr class="memdesc:structsdma__config__t"><td class="mdescLeft">&#160;</td><td class="mdescRight">SDMA global configuration structure.  <a href="group__sdma.html#structsdma__config__t">More...</a><br/></td></tr>
<tr class="separator:structsdma__config__t"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:structsdma__transfer__config__t"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sdma.html#structsdma__transfer__config__t">sdma_transfer_config_t</a></td></tr>
<tr class="memdesc:structsdma__transfer__config__t"><td class="mdescLeft">&#160;</td><td class="mdescRight">SDMA transfer configuration.  <a href="group__sdma.html#structsdma__transfer__config__t">More...</a><br/></td></tr>
<tr class="separator:structsdma__transfer__config__t"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:structsdma__buffer__descriptor__t"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sdma.html#structsdma__buffer__descriptor__t">sdma_buffer_descriptor_t</a></td></tr>
<tr class="memdesc:structsdma__buffer__descriptor__t"><td class="mdescLeft">&#160;</td><td class="mdescRight">SDMA buffer descriptor structure.  <a href="group__sdma.html#structsdma__buffer__descriptor__t">More...</a><br/></td></tr>
<tr class="separator:structsdma__buffer__descriptor__t"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:structsdma__channel__control__t"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sdma.html#structsdma__channel__control__t">sdma_channel_control_t</a></td></tr>
<tr class="memdesc:structsdma__channel__control__t"><td class="mdescLeft">&#160;</td><td class="mdescRight">SDMA channel control descriptor structure.  <a href="group__sdma.html#structsdma__channel__control__t">More...</a><br/></td></tr>
<tr class="separator:structsdma__channel__control__t"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:structsdma__context__data__t"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sdma.html#structsdma__context__data__t">sdma_context_data_t</a></td></tr>
<tr class="memdesc:structsdma__context__data__t"><td class="mdescLeft">&#160;</td><td class="mdescRight">SDMA context structure for each channel.  <a href="group__sdma.html#structsdma__context__data__t">More...</a><br/></td></tr>
<tr class="separator:structsdma__context__data__t"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:structsdma__handle__t"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sdma.html#structsdma__handle__t">sdma_handle_t</a></td></tr>
<tr class="memdesc:structsdma__handle__t"><td class="mdescLeft">&#160;</td><td class="mdescRight">SDMA transfer handle structure.  <a href="group__sdma.html#structsdma__handle__t">More...</a><br/></td></tr>
<tr class="separator:structsdma__handle__t"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:gaf58c0232a81493c44346fac69770dca3"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sdma.html#gaf58c0232a81493c44346fac69770dca3">sdma_callback</a> )(struct _sdma_handle *handle, void *userData, bool transferDone, uint32_t bdIndex)</td></tr>
<tr class="memdesc:gaf58c0232a81493c44346fac69770dca3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Define callback function for SDMA.  <a href="#gaf58c0232a81493c44346fac69770dca3">More...</a><br/></td></tr>
<tr class="separator:gaf58c0232a81493c44346fac69770dca3"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
Enumerations</h2></td></tr>
<tr class="memitem:ga758eb6c79509c31397dd944429b10c55"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sdma.html#ga758eb6c79509c31397dd944429b10c55">sdma_transfer_size_t</a> { <br/>
&#160;&#160;<a class="el" href="group__sdma.html#gga758eb6c79509c31397dd944429b10c55adca09658624dd0253049ab6fadcf5262">kSDMA_TransferSize1Bytes</a> = 0x1U, 
<br/>
&#160;&#160;<a class="el" href="group__sdma.html#gga758eb6c79509c31397dd944429b10c55a9d64435da219daa115b25164980a55f4">kSDMA_TransferSize2Bytes</a> = 0x2U, 
<br/>
&#160;&#160;<a class="el" href="group__sdma.html#gga758eb6c79509c31397dd944429b10c55a97fe0cdd51ff2bb23ebfa0fc1b880c8c">kSDMA_TransferSize4Bytes</a> = 0x0U
<br/>
 }</td></tr>
<tr class="memdesc:ga758eb6c79509c31397dd944429b10c55"><td class="mdescLeft">&#160;</td><td class="mdescRight">SDMA transfer configuration.  <a href="group__sdma.html#ga758eb6c79509c31397dd944429b10c55">More...</a><br/></td></tr>
<tr class="separator:ga758eb6c79509c31397dd944429b10c55"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac434de57d97e9088f3b10a80e67cdc2f"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sdma.html#gac434de57d97e9088f3b10a80e67cdc2f">sdma_bd_status_t</a> { <br/>
&#160;&#160;<a class="el" href="group__sdma.html#ggac434de57d97e9088f3b10a80e67cdc2fa4fa99ceb99319e981c7dff3573bcf417">kSDMA_BDStatusDone</a> = 0x1U, 
<br/>
&#160;&#160;<a class="el" href="group__sdma.html#ggac434de57d97e9088f3b10a80e67cdc2fac74f221723174afa9d7e626cde478bbc">kSDMA_BDStatusWrap</a> = 0x2U, 
<br/>
&#160;&#160;<a class="el" href="group__sdma.html#ggac434de57d97e9088f3b10a80e67cdc2faf8337d05086d2274567e5b5ddd4a1f11">kSDMA_BDStatusContinuous</a> = 0x4U, 
<br/>
&#160;&#160;<a class="el" href="group__sdma.html#ggac434de57d97e9088f3b10a80e67cdc2fa37a4cd8d3de0e463b2ac74f27a062dec">kSDMA_BDStatusInterrupt</a> = 0x8U, 
<br/>
&#160;&#160;<a class="el" href="group__sdma.html#ggac434de57d97e9088f3b10a80e67cdc2faeba409e65de0ec3bdb85ef9f0ef98f5c">kSDMA_BDStatusError</a> = 0x10U, 
<br/>
&#160;&#160;<a class="el" href="group__sdma.html#ggac434de57d97e9088f3b10a80e67cdc2fae57223126ec501af1a61bd08066b5c0c">kSDMA_BDStatusLast</a>, 
<br/>
&#160;&#160;<a class="el" href="group__sdma.html#ggac434de57d97e9088f3b10a80e67cdc2faddc99976cd12cb6b0e4f13dcc592d2fe">kSDMA_BDStatusExtend</a> = 0x80
<br/>
 }</td></tr>
<tr class="memdesc:gac434de57d97e9088f3b10a80e67cdc2f"><td class="mdescLeft">&#160;</td><td class="mdescRight">SDMA buffer descriptor status.  <a href="group__sdma.html#gac434de57d97e9088f3b10a80e67cdc2f">More...</a><br/></td></tr>
<tr class="separator:gac434de57d97e9088f3b10a80e67cdc2f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6a9a8f085496af46c316b05609ef3fe5"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sdma.html#ga6a9a8f085496af46c316b05609ef3fe5">sdma_bd_command_t</a> { <br/>
&#160;&#160;<a class="el" href="group__sdma.html#gga6a9a8f085496af46c316b05609ef3fe5a9e967566f2c13fd2fc7cadcffaea5b5e">kSDMA_BDCommandSETDM</a> = 0x1U, 
<br/>
&#160;&#160;<a class="el" href="group__sdma.html#gga6a9a8f085496af46c316b05609ef3fe5aed4e5459cc289ba817b315c4a3f92f2c">kSDMA_BDCommandGETDM</a> = 0x2U, 
<br/>
&#160;&#160;<a class="el" href="group__sdma.html#gga6a9a8f085496af46c316b05609ef3fe5afc9f1ebf2a9ca952daca64ef464c5a91">kSDMA_BDCommandSETPM</a> = 0x4U, 
<br/>
&#160;&#160;<a class="el" href="group__sdma.html#gga6a9a8f085496af46c316b05609ef3fe5a3abf6e67444d69fc41db7a9ce174f292">kSDMA_BDCommandGETPM</a> = 0x6U, 
<br/>
&#160;&#160;<a class="el" href="group__sdma.html#gga6a9a8f085496af46c316b05609ef3fe5a7ed1e6f0d071ee1d24e414f96a9a400b">kSDMA_BDCommandSETCTX</a> = 0x7U, 
<br/>
&#160;&#160;<a class="el" href="group__sdma.html#gga6a9a8f085496af46c316b05609ef3fe5aeaf0dc44678150d1eef8ec146159b972">kSDMA_BDCommandGETCTX</a> = 0x3U
<br/>
 }</td></tr>
<tr class="memdesc:ga6a9a8f085496af46c316b05609ef3fe5"><td class="mdescLeft">&#160;</td><td class="mdescRight">SDMA buffer descriptor command.  <a href="group__sdma.html#ga6a9a8f085496af46c316b05609ef3fe5">More...</a><br/></td></tr>
<tr class="separator:ga6a9a8f085496af46c316b05609ef3fe5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga53d935f40711fff7150f4bfdd6fe95a3"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sdma.html#ga53d935f40711fff7150f4bfdd6fe95a3">sdma_context_switch_mode_t</a> { <br/>
&#160;&#160;<a class="el" href="group__sdma.html#gga53d935f40711fff7150f4bfdd6fe95a3a071e68bfc896b3bfa4e56470e3cb49a6">kSDMA_ContextSwitchModeStatic</a> = 0x0U, 
<br/>
&#160;&#160;<a class="el" href="group__sdma.html#gga53d935f40711fff7150f4bfdd6fe95a3a5deab6254b6dbea0adf963515229fe02">kSDMA_ContextSwitchModeDynamicLowPower</a>, 
<br/>
&#160;&#160;<a class="el" href="group__sdma.html#gga53d935f40711fff7150f4bfdd6fe95a3a202019005d4b4b2ab178d9e592991283">kSDMA_ContextSwitchModeDynamicWithNoLoop</a>, 
<br/>
&#160;&#160;<a class="el" href="group__sdma.html#gga53d935f40711fff7150f4bfdd6fe95a3a8d64cfeb7162d3fe1246b3e0786e511f">kSDMA_ContextSwitchModeDynamic</a>
<br/>
 }</td></tr>
<tr class="memdesc:ga53d935f40711fff7150f4bfdd6fe95a3"><td class="mdescLeft">&#160;</td><td class="mdescRight">SDMA context switch mode.  <a href="group__sdma.html#ga53d935f40711fff7150f4bfdd6fe95a3">More...</a><br/></td></tr>
<tr class="separator:ga53d935f40711fff7150f4bfdd6fe95a3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga0d831443598fc27a848b06640241c080"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sdma.html#ga0d831443598fc27a848b06640241c080">sdma_clock_ratio_t</a> { <br/>
&#160;&#160;<a class="el" href="group__sdma.html#gga0d831443598fc27a848b06640241c080a1d092d31f5724c51bdc25a293b3a2124">kSDMA_HalfARMClockFreq</a> = 0x0U, 
<br/>
&#160;&#160;<a class="el" href="group__sdma.html#gga0d831443598fc27a848b06640241c080a0c9654fb7c2ae88c35c97e8b3ab0f462">kSDMA_ARMClockFreq</a>
<br/>
 }</td></tr>
<tr class="memdesc:ga0d831443598fc27a848b06640241c080"><td class="mdescLeft">&#160;</td><td class="mdescRight">SDMA core clock frequency ratio to the ARM DMA interface.  <a href="group__sdma.html#ga0d831443598fc27a848b06640241c080">More...</a><br/></td></tr>
<tr class="separator:ga0d831443598fc27a848b06640241c080"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac1b10d21cd1b227dd289eb0fad744ac2"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sdma.html#gac1b10d21cd1b227dd289eb0fad744ac2">sdma_transfer_type_t</a> { <br/>
&#160;&#160;<a class="el" href="group__sdma.html#ggac1b10d21cd1b227dd289eb0fad744ac2a093e03007b762e340d747d5d3b58334f">kSDMA_MemoryToMemory</a> = 0x0U, 
<br/>
&#160;&#160;<a class="el" href="group__sdma.html#ggac1b10d21cd1b227dd289eb0fad744ac2a0e281ffebe82e273c2658e502a81ee7c">kSDMA_PeripheralToMemory</a>, 
<br/>
&#160;&#160;<a class="el" href="group__sdma.html#ggac1b10d21cd1b227dd289eb0fad744ac2aef1f65710eb5c0a5a5e572d809f31739">kSDMA_MemoryToPeripheral</a>
<br/>
 }</td></tr>
<tr class="memdesc:gac1b10d21cd1b227dd289eb0fad744ac2"><td class="mdescLeft">&#160;</td><td class="mdescRight">SDMA transfer type.  <a href="group__sdma.html#gac1b10d21cd1b227dd289eb0fad744ac2">More...</a><br/></td></tr>
<tr class="separator:gac1b10d21cd1b227dd289eb0fad744ac2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gadc1ce96deaaa5299e7370d6c162eb612"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sdma.html#gadc1ce96deaaa5299e7370d6c162eb612">sdma_peripheral_t</a> { <br/>
&#160;&#160;<a class="el" href="group__sdma.html#ggadc1ce96deaaa5299e7370d6c162eb612ac6dc3f40b0bc146d1c896bec285e65d5">kSDMA_PeripheralTypeMemory</a> = 0x0, 
<br/>
&#160;&#160;<a class="el" href="group__sdma.html#ggadc1ce96deaaa5299e7370d6c162eb612a0a5ce17f35ef0a09d338df54cf5e3826">kSDMA_PeripheralTypeUART</a>, 
<br/>
&#160;&#160;<a class="el" href="group__sdma.html#ggadc1ce96deaaa5299e7370d6c162eb612a4b35766548a6ee990df838a09d447d2c">kSDMA_PeripheralTypeUART_SP</a>, 
<br/>
&#160;&#160;<a class="el" href="group__sdma.html#ggadc1ce96deaaa5299e7370d6c162eb612a28e7ad3aa4b0a5ec73f432371000b806">kSDMA_PeripheralTypeSPDIF</a>, 
<br/>
&#160;&#160;<a class="el" href="group__sdma.html#ggadc1ce96deaaa5299e7370d6c162eb612ad33f9568aa791c5d8abdaa0edd1e836f">kSDMA_PeripheralNormal</a>, 
<br/>
&#160;&#160;<a class="el" href="group__sdma.html#ggadc1ce96deaaa5299e7370d6c162eb612a746f066b6d3cc1220325428afcf4fd86">kSDMA_PeripheralNormal_SP</a>
<br/>
 }</td></tr>
<tr class="memdesc:gadc1ce96deaaa5299e7370d6c162eb612"><td class="mdescLeft">&#160;</td><td class="mdescRight">Peripheral type use SDMA.  <a href="group__sdma.html#gadc1ce96deaaa5299e7370d6c162eb612">More...</a><br/></td></tr>
<tr class="separator:gadc1ce96deaaa5299e7370d6c162eb612"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga265c783e56e29d88556d053d6ed6712f"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sdma.html#ga265c783e56e29d88556d053d6ed6712f">_sdma_transfer_status</a> { <br/>
&#160;&#160;<a class="el" href="group__sdma.html#gga265c783e56e29d88556d053d6ed6712fa03cf037d71abc39d5d16d98e07e2e217">kStatus_SDMA_ERROR</a> = MAKE_STATUS(kStatusGroup_SDMA, 0), 
<br/>
&#160;&#160;<a class="el" href="group__sdma.html#gga265c783e56e29d88556d053d6ed6712fae7f535ed8ea581f421d5bce34c0444af">kStatus_SDMA_Busy</a> = MAKE_STATUS(kStatusGroup_SDMA, 1)
<br/>
 }</td></tr>
<tr class="memdesc:ga265c783e56e29d88556d053d6ed6712f"><td class="mdescLeft">&#160;</td><td class="mdescRight">SDMA transfer status.  <a href="group__sdma.html#ga265c783e56e29d88556d053d6ed6712f">More...</a><br/></td></tr>
<tr class="separator:ga265c783e56e29d88556d053d6ed6712f"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
Driver version</h2></td></tr>
<tr class="memitem:ga534773808b3e715f238ce2af747854ac"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sdma.html#ga534773808b3e715f238ce2af747854ac">FSL_SDMA_DRIVER_VERSION</a>&#160;&#160;&#160;(MAKE_VERSION(2, 0, 0))</td></tr>
<tr class="memdesc:ga534773808b3e715f238ce2af747854ac"><td class="mdescLeft">&#160;</td><td class="mdescRight">SDMA driver version.  <a href="#ga534773808b3e715f238ce2af747854ac">More...</a><br/></td></tr>
<tr class="separator:ga534773808b3e715f238ce2af747854ac"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
SDMA initialization and de-initialization</h2></td></tr>
<tr class="memitem:ga63e5054d2b3e2ac6db0bc77a6e555f3c"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sdma.html#ga63e5054d2b3e2ac6db0bc77a6e555f3c">SDMA_Init</a> (SDMAARM_Type *base, const <a class="el" href="group__sdma.html#structsdma__config__t">sdma_config_t</a> *config)</td></tr>
<tr class="memdesc:ga63e5054d2b3e2ac6db0bc77a6e555f3c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes the SDMA peripheral.  <a href="#ga63e5054d2b3e2ac6db0bc77a6e555f3c">More...</a><br/></td></tr>
<tr class="separator:ga63e5054d2b3e2ac6db0bc77a6e555f3c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2ca9d8092fff698309ddd8413e1ea15d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sdma.html#ga2ca9d8092fff698309ddd8413e1ea15d">SDMA_Deinit</a> (SDMAARM_Type *base)</td></tr>
<tr class="memdesc:ga2ca9d8092fff698309ddd8413e1ea15d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Deinitializes the SDMA peripheral.  <a href="#ga2ca9d8092fff698309ddd8413e1ea15d">More...</a><br/></td></tr>
<tr class="separator:ga2ca9d8092fff698309ddd8413e1ea15d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga928c1c71a8cea279eb941c8b239ece93"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sdma.html#ga928c1c71a8cea279eb941c8b239ece93">SDMA_GetDefaultConfig</a> (<a class="el" href="group__sdma.html#structsdma__config__t">sdma_config_t</a> *config)</td></tr>
<tr class="memdesc:ga928c1c71a8cea279eb941c8b239ece93"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the SDMA default configuration structure.  <a href="#ga928c1c71a8cea279eb941c8b239ece93">More...</a><br/></td></tr>
<tr class="separator:ga928c1c71a8cea279eb941c8b239ece93"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa7b59dc82bebfda229556c999b53f841"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sdma.html#gaa7b59dc82bebfda229556c999b53f841">SDMA_ResetModule</a> (SDMAARM_Type *base)</td></tr>
<tr class="memdesc:gaa7b59dc82bebfda229556c999b53f841"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets all SDMA core register to reset status.  <a href="#gaa7b59dc82bebfda229556c999b53f841">More...</a><br/></td></tr>
<tr class="separator:gaa7b59dc82bebfda229556c999b53f841"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
SDMA Channel Operation</h2></td></tr>
<tr class="memitem:ga7e5912cbe348e787140df4df6518d216"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sdma.html#ga7e5912cbe348e787140df4df6518d216">SDMA_EnableChannelErrorInterrupts</a> (SDMAARM_Type *base, uint32_t channel)</td></tr>
<tr class="memdesc:ga7e5912cbe348e787140df4df6518d216"><td class="mdescLeft">&#160;</td><td class="mdescRight">Enables the interrupt source for the SDMA error.  <a href="#ga7e5912cbe348e787140df4df6518d216">More...</a><br/></td></tr>
<tr class="separator:ga7e5912cbe348e787140df4df6518d216"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf1f0be3c0a76e1a64b5f836e918a9704"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sdma.html#gaf1f0be3c0a76e1a64b5f836e918a9704">SDMA_DisableChannelErrorInterrupts</a> (SDMAARM_Type *base, uint32_t channel)</td></tr>
<tr class="memdesc:gaf1f0be3c0a76e1a64b5f836e918a9704"><td class="mdescLeft">&#160;</td><td class="mdescRight">Disables the interrupt source for the SDMA error.  <a href="#gaf1f0be3c0a76e1a64b5f836e918a9704">More...</a><br/></td></tr>
<tr class="separator:gaf1f0be3c0a76e1a64b5f836e918a9704"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
SDMA Buffer Descriptor Operation</h2></td></tr>
<tr class="memitem:gaca6942f24e6de8ad946d97598a7e9fbe"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sdma.html#gaca6942f24e6de8ad946d97598a7e9fbe">SDMA_ConfigBufferDescriptor</a> (<a class="el" href="group__sdma.html#structsdma__buffer__descriptor__t">sdma_buffer_descriptor_t</a> *bd, uint32_t srcAddr, uint32_t destAddr, <a class="el" href="group__sdma.html#ga758eb6c79509c31397dd944429b10c55">sdma_transfer_size_t</a> busWidth, size_t bufferSize, bool isLast, bool enableInterrupt, bool isWrap, <a class="el" href="group__sdma.html#gac1b10d21cd1b227dd289eb0fad744ac2">sdma_transfer_type_t</a> type)</td></tr>
<tr class="memdesc:gaca6942f24e6de8ad946d97598a7e9fbe"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets buffer descriptor contents.  <a href="#gaca6942f24e6de8ad946d97598a7e9fbe">More...</a><br/></td></tr>
<tr class="separator:gaca6942f24e6de8ad946d97598a7e9fbe"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
SDMA Channel Transfer Operation</h2></td></tr>
<tr class="memitem:ga799b8c29ad2e816e2448ffabdd4a988e"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sdma.html#ga799b8c29ad2e816e2448ffabdd4a988e">SDMA_SetChannelPriority</a> (SDMAARM_Type *base, uint32_t channel, uint8_t priority)</td></tr>
<tr class="memdesc:ga799b8c29ad2e816e2448ffabdd4a988e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set SDMA channel priority.  <a href="#ga799b8c29ad2e816e2448ffabdd4a988e">More...</a><br/></td></tr>
<tr class="separator:ga799b8c29ad2e816e2448ffabdd4a988e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7d17f6656c63920e2d2a1970abe95ab7"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sdma.html#ga7d17f6656c63920e2d2a1970abe95ab7">SDMA_SetSourceChannel</a> (SDMAARM_Type *base, uint32_t source, uint32_t channelMask)</td></tr>
<tr class="memdesc:ga7d17f6656c63920e2d2a1970abe95ab7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set SDMA request source mapping channel.  <a href="#ga7d17f6656c63920e2d2a1970abe95ab7">More...</a><br/></td></tr>
<tr class="separator:ga7d17f6656c63920e2d2a1970abe95ab7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga79d0f9a600307e3382b37fedbaf94082"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sdma.html#ga79d0f9a600307e3382b37fedbaf94082">SDMA_StartChannelSoftware</a> (SDMAARM_Type *base, uint32_t channel)</td></tr>
<tr class="memdesc:ga79d0f9a600307e3382b37fedbaf94082"><td class="mdescLeft">&#160;</td><td class="mdescRight">Start a SDMA channel by software trigger.  <a href="#ga79d0f9a600307e3382b37fedbaf94082">More...</a><br/></td></tr>
<tr class="separator:ga79d0f9a600307e3382b37fedbaf94082"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gafae3a665aced95a8d5c61135f419c655"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sdma.html#gafae3a665aced95a8d5c61135f419c655">SDMA_StartChannelEvents</a> (SDMAARM_Type *base, uint32_t channel)</td></tr>
<tr class="memdesc:gafae3a665aced95a8d5c61135f419c655"><td class="mdescLeft">&#160;</td><td class="mdescRight">Start a SDMA channel by hardware events.  <a href="#gafae3a665aced95a8d5c61135f419c655">More...</a><br/></td></tr>
<tr class="separator:gafae3a665aced95a8d5c61135f419c655"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa6a9cbbc9125797b8ca345464c06f1b9"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sdma.html#gaa6a9cbbc9125797b8ca345464c06f1b9">SDMA_StopChannel</a> (SDMAARM_Type *base, uint32_t channel)</td></tr>
<tr class="memdesc:gaa6a9cbbc9125797b8ca345464c06f1b9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Stop a SDMA channel.  <a href="#gaa6a9cbbc9125797b8ca345464c06f1b9">More...</a><br/></td></tr>
<tr class="separator:gaa6a9cbbc9125797b8ca345464c06f1b9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac965bd4c31319485859b8e102993de29"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sdma.html#gac965bd4c31319485859b8e102993de29">SDMA_SetContextSwitchMode</a> (SDMAARM_Type *base, <a class="el" href="group__sdma.html#ga53d935f40711fff7150f4bfdd6fe95a3">sdma_context_switch_mode_t</a> mode)</td></tr>
<tr class="memdesc:gac965bd4c31319485859b8e102993de29"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the SDMA context switch mode.  <a href="#gac965bd4c31319485859b8e102993de29">More...</a><br/></td></tr>
<tr class="separator:gac965bd4c31319485859b8e102993de29"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
SDMA Channel Status Operation</h2></td></tr>
<tr class="memitem:ga0d28ac87cb22d9cad006d4e97320b3b8"><td class="memItemLeft" align="right" valign="top">static uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sdma.html#ga0d28ac87cb22d9cad006d4e97320b3b8">SDMA_GetChannelInterruptStatus</a> (SDMAARM_Type *base)</td></tr>
<tr class="memdesc:ga0d28ac87cb22d9cad006d4e97320b3b8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the SDMA interrupt status of all channels.  <a href="#ga0d28ac87cb22d9cad006d4e97320b3b8">More...</a><br/></td></tr>
<tr class="separator:ga0d28ac87cb22d9cad006d4e97320b3b8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga55f2efdb37c188a7603d921fc66cbfcb"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sdma.html#ga55f2efdb37c188a7603d921fc66cbfcb">SDMA_ClearChannelInterruptStatus</a> (SDMAARM_Type *base, uint32_t mask)</td></tr>
<tr class="memdesc:ga55f2efdb37c188a7603d921fc66cbfcb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clear the SDMA channel interrupt status of specific channels.  <a href="#ga55f2efdb37c188a7603d921fc66cbfcb">More...</a><br/></td></tr>
<tr class="separator:ga55f2efdb37c188a7603d921fc66cbfcb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gadfc19c282f5b55dabf7c7d4c30284f79"><td class="memItemLeft" align="right" valign="top">static uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sdma.html#gadfc19c282f5b55dabf7c7d4c30284f79">SDMA_GetChannelStopStatus</a> (SDMAARM_Type *base)</td></tr>
<tr class="memdesc:gadfc19c282f5b55dabf7c7d4c30284f79"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the SDMA stop status of all channels.  <a href="#gadfc19c282f5b55dabf7c7d4c30284f79">More...</a><br/></td></tr>
<tr class="separator:gadfc19c282f5b55dabf7c7d4c30284f79"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3dbda3946690f3c99d21b5975334e3f7"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sdma.html#ga3dbda3946690f3c99d21b5975334e3f7">SDMA_ClearChannelStopStatus</a> (SDMAARM_Type *base, uint32_t mask)</td></tr>
<tr class="memdesc:ga3dbda3946690f3c99d21b5975334e3f7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clear the SDMA channel stop status of specific channels.  <a href="#ga3dbda3946690f3c99d21b5975334e3f7">More...</a><br/></td></tr>
<tr class="separator:ga3dbda3946690f3c99d21b5975334e3f7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad0c01101714d71e78c79ee90151ab9e7"><td class="memItemLeft" align="right" valign="top">static uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sdma.html#gad0c01101714d71e78c79ee90151ab9e7">SDMA_GetChannelPendStatus</a> (SDMAARM_Type *base)</td></tr>
<tr class="memdesc:gad0c01101714d71e78c79ee90151ab9e7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the SDMA channel pending status of all channels.  <a href="#gad0c01101714d71e78c79ee90151ab9e7">More...</a><br/></td></tr>
<tr class="separator:gad0c01101714d71e78c79ee90151ab9e7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gace9cddb0417bc011360351388369f67f"><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sdma.html#gace9cddb0417bc011360351388369f67f">SDMA_ClearChannelPendStatus</a> (SDMAARM_Type *base, uint32_t mask)</td></tr>
<tr class="memdesc:gace9cddb0417bc011360351388369f67f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clear the SDMA channel pending status of specific channels.  <a href="#gace9cddb0417bc011360351388369f67f">More...</a><br/></td></tr>
<tr class="separator:gace9cddb0417bc011360351388369f67f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga6238761b23b3c6b7a0d95afa00d08435"><td class="memItemLeft" align="right" valign="top">static uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sdma.html#ga6238761b23b3c6b7a0d95afa00d08435">SDMA_GetErrorStatus</a> (SDMAARM_Type *base)</td></tr>
<tr class="memdesc:ga6238761b23b3c6b7a0d95afa00d08435"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the SDMA channel error status.  <a href="#ga6238761b23b3c6b7a0d95afa00d08435">More...</a><br/></td></tr>
<tr class="separator:ga6238761b23b3c6b7a0d95afa00d08435"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7e37f4e503be946ae126f5233e33d8c9"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sdma.html#ga7e37f4e503be946ae126f5233e33d8c9">SDMA_GetRequestSourceStatus</a> (SDMAARM_Type *base, uint32_t source)</td></tr>
<tr class="memdesc:ga7e37f4e503be946ae126f5233e33d8c9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the SDMA request source pending status.  <a href="#ga7e37f4e503be946ae126f5233e33d8c9">More...</a><br/></td></tr>
<tr class="separator:ga7e37f4e503be946ae126f5233e33d8c9"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
SDMA Transactional Operation</h2></td></tr>
<tr class="memitem:gaf777aa964e5cf03a07facf8deffd11ee"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sdma.html#gaf777aa964e5cf03a07facf8deffd11ee">SDMA_CreateHandle</a> (<a class="el" href="group__sdma.html#structsdma__handle__t">sdma_handle_t</a> *handle, SDMAARM_Type *base, uint32_t channel, <a class="el" href="group__sdma.html#structsdma__context__data__t">sdma_context_data_t</a> *context)</td></tr>
<tr class="memdesc:gaf777aa964e5cf03a07facf8deffd11ee"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates the SDMA handle.  <a href="#gaf777aa964e5cf03a07facf8deffd11ee">More...</a><br/></td></tr>
<tr class="separator:gaf777aa964e5cf03a07facf8deffd11ee"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga02f095ca5ab6a8a5b52b96152465e6fd"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sdma.html#ga02f095ca5ab6a8a5b52b96152465e6fd">SDMA_InstallBDMemory</a> (<a class="el" href="group__sdma.html#structsdma__handle__t">sdma_handle_t</a> *handle, <a class="el" href="group__sdma.html#structsdma__buffer__descriptor__t">sdma_buffer_descriptor_t</a> *BDPool, uint32_t BDCount)</td></tr>
<tr class="memdesc:ga02f095ca5ab6a8a5b52b96152465e6fd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Installs the BDs memory pool into the SDMA handle.  <a href="#ga02f095ca5ab6a8a5b52b96152465e6fd">More...</a><br/></td></tr>
<tr class="separator:ga02f095ca5ab6a8a5b52b96152465e6fd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gadb5bdca472ad5039473cc53bf7f6ac6e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sdma.html#gadb5bdca472ad5039473cc53bf7f6ac6e">SDMA_SetCallback</a> (<a class="el" href="group__sdma.html#structsdma__handle__t">sdma_handle_t</a> *handle, <a class="el" href="group__sdma.html#gaf58c0232a81493c44346fac69770dca3">sdma_callback</a> callback, void *userData)</td></tr>
<tr class="memdesc:gadb5bdca472ad5039473cc53bf7f6ac6e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Installs a callback function for the SDMA transfer.  <a href="#gadb5bdca472ad5039473cc53bf7f6ac6e">More...</a><br/></td></tr>
<tr class="separator:gadb5bdca472ad5039473cc53bf7f6ac6e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga15697d2f5295a1e844cfd129e9037bbe"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sdma.html#ga15697d2f5295a1e844cfd129e9037bbe">SDMA_PrepareTransfer</a> (<a class="el" href="group__sdma.html#structsdma__transfer__config__t">sdma_transfer_config_t</a> *config, uint32_t srcAddr, uint32_t destAddr, uint32_t srcWidth, uint32_t destWidth, uint32_t bytesEachRequest, uint32_t transferSize, uint32_t eventSource, <a class="el" href="group__sdma.html#gadc1ce96deaaa5299e7370d6c162eb612">sdma_peripheral_t</a> peripheral, <a class="el" href="group__sdma.html#gac1b10d21cd1b227dd289eb0fad744ac2">sdma_transfer_type_t</a> type)</td></tr>
<tr class="memdesc:ga15697d2f5295a1e844cfd129e9037bbe"><td class="mdescLeft">&#160;</td><td class="mdescRight">Prepares the SDMA transfer structure.  <a href="#ga15697d2f5295a1e844cfd129e9037bbe">More...</a><br/></td></tr>
<tr class="separator:ga15697d2f5295a1e844cfd129e9037bbe"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac0e4a6a850beac832430a82be1257dd3"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sdma.html#gac0e4a6a850beac832430a82be1257dd3">SDMA_SubmitTransfer</a> (<a class="el" href="group__sdma.html#structsdma__handle__t">sdma_handle_t</a> *handle, const <a class="el" href="group__sdma.html#structsdma__transfer__config__t">sdma_transfer_config_t</a> *config)</td></tr>
<tr class="memdesc:gac0e4a6a850beac832430a82be1257dd3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Submits the SDMA transfer request.  <a href="#gac0e4a6a850beac832430a82be1257dd3">More...</a><br/></td></tr>
<tr class="separator:gac0e4a6a850beac832430a82be1257dd3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gad46a251361077e1a804de5ed1149c3ad"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sdma.html#gad46a251361077e1a804de5ed1149c3ad">SDMA_StartTransfer</a> (<a class="el" href="group__sdma.html#structsdma__handle__t">sdma_handle_t</a> *handle)</td></tr>
<tr class="memdesc:gad46a251361077e1a804de5ed1149c3ad"><td class="mdescLeft">&#160;</td><td class="mdescRight">SDMA starts transfer.  <a href="#gad46a251361077e1a804de5ed1149c3ad">More...</a><br/></td></tr>
<tr class="separator:gad46a251361077e1a804de5ed1149c3ad"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga03762a76c03b998b8b1fcb58ba1d790d"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sdma.html#ga03762a76c03b998b8b1fcb58ba1d790d">SDMA_StopTransfer</a> (<a class="el" href="group__sdma.html#structsdma__handle__t">sdma_handle_t</a> *handle)</td></tr>
<tr class="memdesc:ga03762a76c03b998b8b1fcb58ba1d790d"><td class="mdescLeft">&#160;</td><td class="mdescRight">SDMA stops transfer.  <a href="#ga03762a76c03b998b8b1fcb58ba1d790d">More...</a><br/></td></tr>
<tr class="separator:ga03762a76c03b998b8b1fcb58ba1d790d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab0775208a9fd1a9b888b6941792f0f4b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sdma.html#gab0775208a9fd1a9b888b6941792f0f4b">SDMA_AbortTransfer</a> (<a class="el" href="group__sdma.html#structsdma__handle__t">sdma_handle_t</a> *handle)</td></tr>
<tr class="memdesc:gab0775208a9fd1a9b888b6941792f0f4b"><td class="mdescLeft">&#160;</td><td class="mdescRight">SDMA aborts transfer.  <a href="#gab0775208a9fd1a9b888b6941792f0f4b">More...</a><br/></td></tr>
<tr class="separator:gab0775208a9fd1a9b888b6941792f0f4b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8a06c9b2014e8ed7b155168ef45ac0e4"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sdma.html#ga8a06c9b2014e8ed7b155168ef45ac0e4">SDMA_HandleIRQ</a> (<a class="el" href="group__sdma.html#structsdma__handle__t">sdma_handle_t</a> *handle)</td></tr>
<tr class="memdesc:ga8a06c9b2014e8ed7b155168ef45ac0e4"><td class="mdescLeft">&#160;</td><td class="mdescRight">SDMA IRQ handler for complete a buffer descriptor transfer.  <a href="#ga8a06c9b2014e8ed7b155168ef45ac0e4">More...</a><br/></td></tr>
<tr class="separator:ga8a06c9b2014e8ed7b155168ef45ac0e4"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<hr/><h2 class="groupheader">Data Structure Documentation</h2>
<a name="structsdma__config__t" id="structsdma__config__t"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">struct sdma_config_t</td>
        </tr>
      </table>
</div><div class="memdoc">
<div class="textblock"></div><table class="memberdecls">
<tr><td colspan="2"><h3>Data Fields</h3></td></tr>
<tr class="memitem:a82b3d4ea81f30cf4c687dc0fc2f1adbe"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sdma.html#a82b3d4ea81f30cf4c687dc0fc2f1adbe">enableRealTimeDebugPin</a></td></tr>
<tr class="memdesc:a82b3d4ea81f30cf4c687dc0fc2f1adbe"><td class="mdescLeft">&#160;</td><td class="mdescRight">If enable real-time debug pin, default is closed to reduce power consumption.  <a href="#a82b3d4ea81f30cf4c687dc0fc2f1adbe">More...</a><br/></td></tr>
<tr class="separator:a82b3d4ea81f30cf4c687dc0fc2f1adbe"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a69fe3d3e41b8c4f6b48fecc3d8e11a97"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sdma.html#a69fe3d3e41b8c4f6b48fecc3d8e11a97">isSoftwareResetClearLock</a></td></tr>
<tr class="memdesc:a69fe3d3e41b8c4f6b48fecc3d8e11a97"><td class="mdescLeft">&#160;</td><td class="mdescRight">If software reset clears the LOCK bit which prevent writing SDMA scripts into SDMA.  <a href="#a69fe3d3e41b8c4f6b48fecc3d8e11a97">More...</a><br/></td></tr>
<tr class="separator:a69fe3d3e41b8c4f6b48fecc3d8e11a97"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a20bd6f6adea6bbdc51fcf0b1d4331ba5"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a20bd6f6adea6bbdc51fcf0b1d4331ba5"></a>
<a class="el" href="group__sdma.html#ga0d831443598fc27a848b06640241c080">sdma_clock_ratio_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sdma.html#a20bd6f6adea6bbdc51fcf0b1d4331ba5">ratio</a></td></tr>
<tr class="memdesc:a20bd6f6adea6bbdc51fcf0b1d4331ba5"><td class="mdescLeft">&#160;</td><td class="mdescRight">SDMA core clock ratio to ARM platform DMA interface. <br/></td></tr>
<tr class="separator:a20bd6f6adea6bbdc51fcf0b1d4331ba5"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h4 class="groupheader">Field Documentation</h4>
<a class="anchor" id="a82b3d4ea81f30cf4c687dc0fc2f1adbe"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool sdma_config_t::enableRealTimeDebugPin</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a class="anchor" id="a69fe3d3e41b8c4f6b48fecc3d8e11a97"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool sdma_config_t::isSoftwareResetClearLock</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>

</div>
</div>
<a name="structsdma__transfer__config__t" id="structsdma__transfer__config__t"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">struct sdma_transfer_config_t</td>
        </tr>
      </table>
</div><div class="memdoc">
<div class="textblock"><p>This structure configures the source/destination transfer attribute. </p>
</div><table class="memberdecls">
<tr><td colspan="2"><h3>Data Fields</h3></td></tr>
<tr class="memitem:a7d8132828202b8416a29d552264832ba"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7d8132828202b8416a29d552264832ba"></a>
uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sdma.html#a7d8132828202b8416a29d552264832ba">srcAddr</a></td></tr>
<tr class="memdesc:a7d8132828202b8416a29d552264832ba"><td class="mdescLeft">&#160;</td><td class="mdescRight">Source address of the transfer. <br/></td></tr>
<tr class="separator:a7d8132828202b8416a29d552264832ba"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6713619d134c3a690657999b187fae06"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6713619d134c3a690657999b187fae06"></a>
uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sdma.html#a6713619d134c3a690657999b187fae06">destAddr</a></td></tr>
<tr class="memdesc:a6713619d134c3a690657999b187fae06"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destination address of the transfer. <br/></td></tr>
<tr class="separator:a6713619d134c3a690657999b187fae06"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4a1e7cb8f3826dc03a93a91bbbe8773c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__sdma.html#ga758eb6c79509c31397dd944429b10c55">sdma_transfer_size_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sdma.html#a4a1e7cb8f3826dc03a93a91bbbe8773c">srcTransferSize</a></td></tr>
<tr class="memdesc:a4a1e7cb8f3826dc03a93a91bbbe8773c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Source data transfer size.  <a href="#a4a1e7cb8f3826dc03a93a91bbbe8773c">More...</a><br/></td></tr>
<tr class="separator:a4a1e7cb8f3826dc03a93a91bbbe8773c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9543ad0711187a51431a1983eb6bf895"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__sdma.html#ga758eb6c79509c31397dd944429b10c55">sdma_transfer_size_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sdma.html#a9543ad0711187a51431a1983eb6bf895">destTransferSize</a></td></tr>
<tr class="memdesc:a9543ad0711187a51431a1983eb6bf895"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destination data transfer size.  <a href="#a9543ad0711187a51431a1983eb6bf895">More...</a><br/></td></tr>
<tr class="separator:a9543ad0711187a51431a1983eb6bf895"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad78baf0e67245cf315a5ec866b85a2ff"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad78baf0e67245cf315a5ec866b85a2ff"></a>
uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sdma.html#ad78baf0e67245cf315a5ec866b85a2ff">bytesPerRequest</a></td></tr>
<tr class="memdesc:ad78baf0e67245cf315a5ec866b85a2ff"><td class="mdescLeft">&#160;</td><td class="mdescRight">Bytes to transfer in a minor loop. <br/></td></tr>
<tr class="separator:ad78baf0e67245cf315a5ec866b85a2ff"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af09cf5efdd555593c07667cef773cf84"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af09cf5efdd555593c07667cef773cf84"></a>
uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sdma.html#af09cf5efdd555593c07667cef773cf84">transferSzie</a></td></tr>
<tr class="memdesc:af09cf5efdd555593c07667cef773cf84"><td class="mdescLeft">&#160;</td><td class="mdescRight">Bytes to transfer for this descriptor. <br/></td></tr>
<tr class="separator:af09cf5efdd555593c07667cef773cf84"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a67c22ed8d9db61ea5e3985218a10eb6f"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sdma.html#a67c22ed8d9db61ea5e3985218a10eb6f">scriptAddr</a></td></tr>
<tr class="memdesc:a67c22ed8d9db61ea5e3985218a10eb6f"><td class="mdescLeft">&#160;</td><td class="mdescRight">SDMA script address located in SDMA ROM.  <a href="#a67c22ed8d9db61ea5e3985218a10eb6f">More...</a><br/></td></tr>
<tr class="separator:a67c22ed8d9db61ea5e3985218a10eb6f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5fbc699b4772d9768bb5ec93775ecbc3"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sdma.html#a5fbc699b4772d9768bb5ec93775ecbc3">eventSource</a></td></tr>
<tr class="memdesc:a5fbc699b4772d9768bb5ec93775ecbc3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Event source number for the channel.  <a href="#a5fbc699b4772d9768bb5ec93775ecbc3">More...</a><br/></td></tr>
<tr class="separator:a5fbc699b4772d9768bb5ec93775ecbc3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa6866cf552528f984d1e462dec1bb757"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aa6866cf552528f984d1e462dec1bb757"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sdma.html#aa6866cf552528f984d1e462dec1bb757">isEventIgnore</a></td></tr>
<tr class="memdesc:aa6866cf552528f984d1e462dec1bb757"><td class="mdescLeft">&#160;</td><td class="mdescRight">True means software trigger, false means hardware trigger. <br/></td></tr>
<tr class="separator:aa6866cf552528f984d1e462dec1bb757"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a599ff90023ae46e9e8410d2b747d2dff"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a599ff90023ae46e9e8410d2b747d2dff"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sdma.html#a599ff90023ae46e9e8410d2b747d2dff">isSoftTriggerIgnore</a></td></tr>
<tr class="memdesc:a599ff90023ae46e9e8410d2b747d2dff"><td class="mdescLeft">&#160;</td><td class="mdescRight">If ignore the HE bit, 1 means use hardware events trigger, 0 means software trigger. <br/></td></tr>
<tr class="separator:a599ff90023ae46e9e8410d2b747d2dff"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7f60c79fa59af382ecc2daf5719e321b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__sdma.html#gac1b10d21cd1b227dd289eb0fad744ac2">sdma_transfer_type_t</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sdma.html#a7f60c79fa59af382ecc2daf5719e321b">type</a></td></tr>
<tr class="memdesc:a7f60c79fa59af382ecc2daf5719e321b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Transfer type, transfer type used to decide the SDMA script.  <a href="#a7f60c79fa59af382ecc2daf5719e321b">More...</a><br/></td></tr>
<tr class="separator:a7f60c79fa59af382ecc2daf5719e321b"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h4 class="groupheader">Field Documentation</h4>
<a class="anchor" id="a4a1e7cb8f3826dc03a93a91bbbe8773c"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__sdma.html#ga758eb6c79509c31397dd944429b10c55">sdma_transfer_size_t</a> sdma_transfer_config_t::srcTransferSize</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a class="anchor" id="a9543ad0711187a51431a1983eb6bf895"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__sdma.html#ga758eb6c79509c31397dd944429b10c55">sdma_transfer_size_t</a> sdma_transfer_config_t::destTransferSize</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a class="anchor" id="a67c22ed8d9db61ea5e3985218a10eb6f"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint32_t sdma_transfer_config_t::scriptAddr</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a class="anchor" id="a5fbc699b4772d9768bb5ec93775ecbc3"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint32_t sdma_transfer_config_t::eventSource</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>0 means no event, use software trigger </p>

</div>
</div>
<a class="anchor" id="a7f60c79fa59af382ecc2daf5719e321b"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__sdma.html#gac1b10d21cd1b227dd289eb0fad744ac2">sdma_transfer_type_t</a> sdma_transfer_config_t::type</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>

</div>
</div>
<a name="structsdma__buffer__descriptor__t" id="structsdma__buffer__descriptor__t"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">struct sdma_buffer_descriptor_t</td>
        </tr>
      </table>
</div><div class="memdoc">
<div class="textblock"><p>This structure is a buffer descriptor, this structure describes the buffer start address and other options </p>
</div><table class="memberdecls">
<tr><td colspan="2"><h3>Data Fields</h3></td></tr>
<tr class="memitem:a7e3dd458ec183d4ca8179b9ad649b63a"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sdma.html#a7e3dd458ec183d4ca8179b9ad649b63a">count</a>: 16</td></tr>
<tr class="memdesc:a7e3dd458ec183d4ca8179b9ad649b63a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Bytes of the buffer length for this buffer descriptor.  <a href="#a7e3dd458ec183d4ca8179b9ad649b63a">More...</a><br/></td></tr>
<tr class="separator:a7e3dd458ec183d4ca8179b9ad649b63a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9ec79aafebe5c93f1d538ce2551140c7"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a9ec79aafebe5c93f1d538ce2551140c7"></a>
uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sdma.html#a9ec79aafebe5c93f1d538ce2551140c7">status</a>: 8</td></tr>
<tr class="memdesc:a9ec79aafebe5c93f1d538ce2551140c7"><td class="mdescLeft">&#160;</td><td class="mdescRight">E,R,I,C,W,D status bits stored here. <br/></td></tr>
<tr class="separator:a9ec79aafebe5c93f1d538ce2551140c7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a439f34551c2e8d13150a8f60768beb49"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a439f34551c2e8d13150a8f60768beb49"></a>
uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sdma.html#a439f34551c2e8d13150a8f60768beb49">command</a>: 8</td></tr>
<tr class="memdesc:a439f34551c2e8d13150a8f60768beb49"><td class="mdescLeft">&#160;</td><td class="mdescRight">command mostlky used for channel 0 <br/></td></tr>
<tr class="separator:a439f34551c2e8d13150a8f60768beb49"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2ddf152ce09e41d6890dead8c15142ea"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sdma.html#a2ddf152ce09e41d6890dead8c15142ea">bufferAddr</a></td></tr>
<tr class="memdesc:a2ddf152ce09e41d6890dead8c15142ea"><td class="mdescLeft">&#160;</td><td class="mdescRight">Buffer start address for this descriptor.  <a href="#a2ddf152ce09e41d6890dead8c15142ea">More...</a><br/></td></tr>
<tr class="separator:a2ddf152ce09e41d6890dead8c15142ea"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa960c896fade6283619fde1236de022b"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sdma.html#aa960c896fade6283619fde1236de022b">extendBufferAddr</a></td></tr>
<tr class="memdesc:aa960c896fade6283619fde1236de022b"><td class="mdescLeft">&#160;</td><td class="mdescRight">External buffer start address, this is an optional for a transfer.  <a href="#aa960c896fade6283619fde1236de022b">More...</a><br/></td></tr>
<tr class="separator:aa960c896fade6283619fde1236de022b"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h4 class="groupheader">Field Documentation</h4>
<a class="anchor" id="a7e3dd458ec183d4ca8179b9ad649b63a"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint32_t sdma_buffer_descriptor_t::count</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a class="anchor" id="a2ddf152ce09e41d6890dead8c15142ea"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint32_t sdma_buffer_descriptor_t::bufferAddr</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a class="anchor" id="aa960c896fade6283619fde1236de022b"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint32_t sdma_buffer_descriptor_t::extendBufferAddr</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>

</div>
</div>
<a name="structsdma__channel__control__t" id="structsdma__channel__control__t"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">struct sdma_channel_control_t</td>
        </tr>
      </table>
</div><div class="memdoc">
<div class="textblock"></div><table class="memberdecls">
<tr><td colspan="2"><h3>Data Fields</h3></td></tr>
<tr class="memitem:a7784ee8d1e42b9f35fecbddfb2c26df1"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7784ee8d1e42b9f35fecbddfb2c26df1"></a>
uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sdma.html#a7784ee8d1e42b9f35fecbddfb2c26df1">currentBDAddr</a></td></tr>
<tr class="memdesc:a7784ee8d1e42b9f35fecbddfb2c26df1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Address of current buffer descriptor processed. <br/></td></tr>
<tr class="separator:a7784ee8d1e42b9f35fecbddfb2c26df1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acb0cc52393d44bc2bd25dbfcf4c76e05"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="acb0cc52393d44bc2bd25dbfcf4c76e05"></a>
uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sdma.html#acb0cc52393d44bc2bd25dbfcf4c76e05">baseBDAddr</a></td></tr>
<tr class="memdesc:acb0cc52393d44bc2bd25dbfcf4c76e05"><td class="mdescLeft">&#160;</td><td class="mdescRight">The start address of the buffer descriptor array. <br/></td></tr>
<tr class="separator:acb0cc52393d44bc2bd25dbfcf4c76e05"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a09442829bd9d69cc30df580dc711c8d2"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a09442829bd9d69cc30df580dc711c8d2"></a>
uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sdma.html#a09442829bd9d69cc30df580dc711c8d2">channelDesc</a></td></tr>
<tr class="memdesc:a09442829bd9d69cc30df580dc711c8d2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Optional for transfer. <br/></td></tr>
<tr class="separator:a09442829bd9d69cc30df580dc711c8d2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7af38afcb4ea94a5863e23e840c94d83"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7af38afcb4ea94a5863e23e840c94d83"></a>
uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sdma.html#a7af38afcb4ea94a5863e23e840c94d83">status</a></td></tr>
<tr class="memdesc:a7af38afcb4ea94a5863e23e840c94d83"><td class="mdescLeft">&#160;</td><td class="mdescRight">Channel status. <br/></td></tr>
<tr class="separator:a7af38afcb4ea94a5863e23e840c94d83"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>

</div>
</div>
<a name="structsdma__context__data__t" id="structsdma__context__data__t"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">struct sdma_context_data_t</td>
        </tr>
      </table>
</div><div class="memdoc">
<div class="textblock"><p>This structure can be load into SDMA core, with this structure, SDMA scripts can start work. </p>
</div><table class="memberdecls">
<tr><td colspan="2"><h3>Data Fields</h3></td></tr>
<tr class="memitem:afbbb4a2f495ee70dedcc11179f0661db"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="afbbb4a2f495ee70dedcc11179f0661db"></a>
uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sdma.html#afbbb4a2f495ee70dedcc11179f0661db">GeneralReg</a> [8]</td></tr>
<tr class="memdesc:afbbb4a2f495ee70dedcc11179f0661db"><td class="mdescLeft">&#160;</td><td class="mdescRight">8 general regsiters used for SDMA RISC core <br/></td></tr>
<tr class="separator:afbbb4a2f495ee70dedcc11179f0661db"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>

</div>
</div>
<a name="structsdma__handle__t" id="structsdma__handle__t"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">struct sdma_handle_t</td>
        </tr>
      </table>
</div><div class="memdoc">
<div class="textblock"></div><table class="memberdecls">
<tr><td colspan="2"><h3>Data Fields</h3></td></tr>
<tr class="memitem:a34cac4d5f1fda259609f0b047fae5ca7"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__sdma.html#gaf58c0232a81493c44346fac69770dca3">sdma_callback</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sdma.html#a34cac4d5f1fda259609f0b047fae5ca7">callback</a></td></tr>
<tr class="memdesc:a34cac4d5f1fda259609f0b047fae5ca7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Callback function for major count exhausted.  <a href="#a34cac4d5f1fda259609f0b047fae5ca7">More...</a><br/></td></tr>
<tr class="separator:a34cac4d5f1fda259609f0b047fae5ca7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a12a0aa1a191f006c1525bd4e2824af84"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sdma.html#a12a0aa1a191f006c1525bd4e2824af84">userData</a></td></tr>
<tr class="memdesc:a12a0aa1a191f006c1525bd4e2824af84"><td class="mdescLeft">&#160;</td><td class="mdescRight">Callback function parameter.  <a href="#a12a0aa1a191f006c1525bd4e2824af84">More...</a><br/></td></tr>
<tr class="separator:a12a0aa1a191f006c1525bd4e2824af84"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a67a8c4e55fa8d248bd6436e079cbd690"><td class="memItemLeft" align="right" valign="top">SDMAARM_Type *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sdma.html#a67a8c4e55fa8d248bd6436e079cbd690">base</a></td></tr>
<tr class="memdesc:a67a8c4e55fa8d248bd6436e079cbd690"><td class="mdescLeft">&#160;</td><td class="mdescRight">SDMA peripheral base address.  <a href="#a67a8c4e55fa8d248bd6436e079cbd690">More...</a><br/></td></tr>
<tr class="separator:a67a8c4e55fa8d248bd6436e079cbd690"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac3c6b8dc20ccf5ab03d8b18b24546915"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__sdma.html#structsdma__buffer__descriptor__t">sdma_buffer_descriptor_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sdma.html#ac3c6b8dc20ccf5ab03d8b18b24546915">BDPool</a></td></tr>
<tr class="memdesc:ac3c6b8dc20ccf5ab03d8b18b24546915"><td class="mdescLeft">&#160;</td><td class="mdescRight">Pointer to memory stored BD arrays.  <a href="#ac3c6b8dc20ccf5ab03d8b18b24546915">More...</a><br/></td></tr>
<tr class="separator:ac3c6b8dc20ccf5ab03d8b18b24546915"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4ad6118d5a7cf45bce519b5dd3840abb"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a4ad6118d5a7cf45bce519b5dd3840abb"></a>
uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sdma.html#a4ad6118d5a7cf45bce519b5dd3840abb">bdCount</a></td></tr>
<tr class="memdesc:a4ad6118d5a7cf45bce519b5dd3840abb"><td class="mdescLeft">&#160;</td><td class="mdescRight">How many buffer descriptor. <br/></td></tr>
<tr class="separator:a4ad6118d5a7cf45bce519b5dd3840abb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6cee67f6f26c19ce663c3f97c50573fe"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a6cee67f6f26c19ce663c3f97c50573fe"></a>
uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sdma.html#a6cee67f6f26c19ce663c3f97c50573fe">bdIndex</a></td></tr>
<tr class="memdesc:a6cee67f6f26c19ce663c3f97c50573fe"><td class="mdescLeft">&#160;</td><td class="mdescRight">How many buffer descriptor. <br/></td></tr>
<tr class="separator:a6cee67f6f26c19ce663c3f97c50573fe"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a13646f921022231e00b0d9b0a7ae9bc4"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a13646f921022231e00b0d9b0a7ae9bc4"></a>
uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sdma.html#a13646f921022231e00b0d9b0a7ae9bc4">eventSource</a></td></tr>
<tr class="memdesc:a13646f921022231e00b0d9b0a7ae9bc4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Event source count for the channel. <br/></td></tr>
<tr class="separator:a13646f921022231e00b0d9b0a7ae9bc4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7977a140300a8c22f64d850abaca44a8"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7977a140300a8c22f64d850abaca44a8"></a>
<a class="el" href="group__sdma.html#structsdma__context__data__t">sdma_context_data_t</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sdma.html#a7977a140300a8c22f64d850abaca44a8">context</a></td></tr>
<tr class="memdesc:a7977a140300a8c22f64d850abaca44a8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Channel context to exectute in SDMA. <br/></td></tr>
<tr class="separator:a7977a140300a8c22f64d850abaca44a8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac2fe0b319fae78b89146bb6b61070748"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sdma.html#ac2fe0b319fae78b89146bb6b61070748">channel</a></td></tr>
<tr class="memdesc:ac2fe0b319fae78b89146bb6b61070748"><td class="mdescLeft">&#160;</td><td class="mdescRight">SDMA channel number.  <a href="#ac2fe0b319fae78b89146bb6b61070748">More...</a><br/></td></tr>
<tr class="separator:ac2fe0b319fae78b89146bb6b61070748"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a21a108eb72b4fc30074ea4027b7ad1ed"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a21a108eb72b4fc30074ea4027b7ad1ed"></a>
uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sdma.html#a21a108eb72b4fc30074ea4027b7ad1ed">priority</a></td></tr>
<tr class="memdesc:a21a108eb72b4fc30074ea4027b7ad1ed"><td class="mdescLeft">&#160;</td><td class="mdescRight">SDMA channel priority. <br/></td></tr>
<tr class="separator:a21a108eb72b4fc30074ea4027b7ad1ed"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae62a9a9f2c7b9257e6e2f14858e7e66b"><td class="memItemLeft" align="right" valign="top">uint8_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__sdma.html#ae62a9a9f2c7b9257e6e2f14858e7e66b">flags</a></td></tr>
<tr class="memdesc:ae62a9a9f2c7b9257e6e2f14858e7e66b"><td class="mdescLeft">&#160;</td><td class="mdescRight">The status of the current channel.  <a href="#ae62a9a9f2c7b9257e6e2f14858e7e66b">More...</a><br/></td></tr>
<tr class="separator:ae62a9a9f2c7b9257e6e2f14858e7e66b"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<h4 class="groupheader">Field Documentation</h4>
<a class="anchor" id="a34cac4d5f1fda259609f0b047fae5ca7"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__sdma.html#gaf58c0232a81493c44346fac69770dca3">sdma_callback</a> sdma_handle_t::callback</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a class="anchor" id="a12a0aa1a191f006c1525bd4e2824af84"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void* sdma_handle_t::userData</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a class="anchor" id="a67a8c4e55fa8d248bd6436e079cbd690"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">SDMAARM_Type* sdma_handle_t::base</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a class="anchor" id="ac3c6b8dc20ccf5ab03d8b18b24546915"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__sdma.html#structsdma__buffer__descriptor__t">sdma_buffer_descriptor_t</a>* sdma_handle_t::BDPool</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a class="anchor" id="ac2fe0b319fae78b89146bb6b61070748"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint8_t sdma_handle_t::channel</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a class="anchor" id="ae62a9a9f2c7b9257e6e2f14858e7e66b"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">uint8_t sdma_handle_t::flags</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>

</div>
</div>
<h2 class="groupheader">Macro Definition Documentation</h2>
<a class="anchor" id="ga534773808b3e715f238ce2af747854ac"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define FSL_SDMA_DRIVER_VERSION&#160;&#160;&#160;(MAKE_VERSION(2, 0, 0))</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Version 2.0.0. </p>

</div>
</div>
<h2 class="groupheader">Typedef Documentation</h2>
<a class="anchor" id="gaf58c0232a81493c44346fac69770dca3"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef void(* sdma_callback)(struct _sdma_handle *handle, void *userData, bool transferDone, uint32_t bdIndex)</td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<h2 class="groupheader">Enumeration Type Documentation</h2>
<a class="anchor" id="ga758eb6c79509c31397dd944429b10c55"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="group__sdma.html#ga758eb6c79509c31397dd944429b10c55">sdma_transfer_size_t</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="gga758eb6c79509c31397dd944429b10c55adca09658624dd0253049ab6fadcf5262"></a>kSDMA_TransferSize1Bytes</em>&nbsp;</td><td class="fielddoc">
<p>Source/Destination data transfer size is 1 byte every time. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga758eb6c79509c31397dd944429b10c55a9d64435da219daa115b25164980a55f4"></a>kSDMA_TransferSize2Bytes</em>&nbsp;</td><td class="fielddoc">
<p>Source/Destination data transfer size is 2 bytes every time. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga758eb6c79509c31397dd944429b10c55a97fe0cdd51ff2bb23ebfa0fc1b880c8c"></a>kSDMA_TransferSize4Bytes</em>&nbsp;</td><td class="fielddoc">
<p>Source/Destination data transfer size is 4 bytes every time. </p>
</td></tr>
</table>

</div>
</div>
<a class="anchor" id="gac434de57d97e9088f3b10a80e67cdc2f"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="group__sdma.html#gac434de57d97e9088f3b10a80e67cdc2f">sdma_bd_status_t</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="ggac434de57d97e9088f3b10a80e67cdc2fa4fa99ceb99319e981c7dff3573bcf417"></a>kSDMA_BDStatusDone</em>&nbsp;</td><td class="fielddoc">
<p>BD ownership, 0 means ARM core owns the BD, while 1 means SDMA owns BD. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggac434de57d97e9088f3b10a80e67cdc2fac74f221723174afa9d7e626cde478bbc"></a>kSDMA_BDStatusWrap</em>&nbsp;</td><td class="fielddoc">
<p>While this BD is last one, the next BD will be the first one. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggac434de57d97e9088f3b10a80e67cdc2faf8337d05086d2274567e5b5ddd4a1f11"></a>kSDMA_BDStatusContinuous</em>&nbsp;</td><td class="fielddoc">
<p>Buffer is allowed to transfer/receive to/from multiple buffers. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggac434de57d97e9088f3b10a80e67cdc2fa37a4cd8d3de0e463b2ac74f27a062dec"></a>kSDMA_BDStatusInterrupt</em>&nbsp;</td><td class="fielddoc">
<p>While this BD finished, send an interrupt. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggac434de57d97e9088f3b10a80e67cdc2faeba409e65de0ec3bdb85ef9f0ef98f5c"></a>kSDMA_BDStatusError</em>&nbsp;</td><td class="fielddoc">
<p>Error occured on buffer descriptor command. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggac434de57d97e9088f3b10a80e67cdc2fae57223126ec501af1a61bd08066b5c0c"></a>kSDMA_BDStatusLast</em>&nbsp;</td><td class="fielddoc">
<p>This BD is the last BD in this array. </p>
<p>It means the transfer ended after this buffer </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggac434de57d97e9088f3b10a80e67cdc2faddc99976cd12cb6b0e4f13dcc592d2fe"></a>kSDMA_BDStatusExtend</em>&nbsp;</td><td class="fielddoc">
<p>Buffer descriptor extend status for SDMA scripts. </p>
</td></tr>
</table>

</div>
</div>
<a class="anchor" id="ga6a9a8f085496af46c316b05609ef3fe5"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="group__sdma.html#ga6a9a8f085496af46c316b05609ef3fe5">sdma_bd_command_t</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="gga6a9a8f085496af46c316b05609ef3fe5a9e967566f2c13fd2fc7cadcffaea5b5e"></a>kSDMA_BDCommandSETDM</em>&nbsp;</td><td class="fielddoc">
<p>Load SDMA data memory from ARM core memory buffer. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga6a9a8f085496af46c316b05609ef3fe5aed4e5459cc289ba817b315c4a3f92f2c"></a>kSDMA_BDCommandGETDM</em>&nbsp;</td><td class="fielddoc">
<p>Copy SDMA data memory to ARM core memory buffer. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga6a9a8f085496af46c316b05609ef3fe5afc9f1ebf2a9ca952daca64ef464c5a91"></a>kSDMA_BDCommandSETPM</em>&nbsp;</td><td class="fielddoc">
<p>Load SDMA program memory from ARM core memory buffer. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga6a9a8f085496af46c316b05609ef3fe5a3abf6e67444d69fc41db7a9ce174f292"></a>kSDMA_BDCommandGETPM</em>&nbsp;</td><td class="fielddoc">
<p>Copy SDMA program memory to ARM core memory buffer. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga6a9a8f085496af46c316b05609ef3fe5a7ed1e6f0d071ee1d24e414f96a9a400b"></a>kSDMA_BDCommandSETCTX</em>&nbsp;</td><td class="fielddoc">
<p>Load context for one channel into SDMA RAM from ARM platform memory buffer. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga6a9a8f085496af46c316b05609ef3fe5aeaf0dc44678150d1eef8ec146159b972"></a>kSDMA_BDCommandGETCTX</em>&nbsp;</td><td class="fielddoc">
<p>Copy context for one channel from SDMA RAM to ARM platform memory buffer. </p>
</td></tr>
</table>

</div>
</div>
<a class="anchor" id="ga53d935f40711fff7150f4bfdd6fe95a3"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="group__sdma.html#ga53d935f40711fff7150f4bfdd6fe95a3">sdma_context_switch_mode_t</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="gga53d935f40711fff7150f4bfdd6fe95a3a071e68bfc896b3bfa4e56470e3cb49a6"></a>kSDMA_ContextSwitchModeStatic</em>&nbsp;</td><td class="fielddoc">
<p>SDMA context switch mode static. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga53d935f40711fff7150f4bfdd6fe95a3a5deab6254b6dbea0adf963515229fe02"></a>kSDMA_ContextSwitchModeDynamicLowPower</em>&nbsp;</td><td class="fielddoc">
<p>SDMA context switch mode dynamic with low power. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga53d935f40711fff7150f4bfdd6fe95a3a202019005d4b4b2ab178d9e592991283"></a>kSDMA_ContextSwitchModeDynamicWithNoLoop</em>&nbsp;</td><td class="fielddoc">
<p>SDMA context switch mode dynamic with no loop. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga53d935f40711fff7150f4bfdd6fe95a3a8d64cfeb7162d3fe1246b3e0786e511f"></a>kSDMA_ContextSwitchModeDynamic</em>&nbsp;</td><td class="fielddoc">
<p>SDMA context switch mode dynamic. </p>
</td></tr>
</table>

</div>
</div>
<a class="anchor" id="ga0d831443598fc27a848b06640241c080"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="group__sdma.html#ga0d831443598fc27a848b06640241c080">sdma_clock_ratio_t</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="gga0d831443598fc27a848b06640241c080a1d092d31f5724c51bdc25a293b3a2124"></a>kSDMA_HalfARMClockFreq</em>&nbsp;</td><td class="fielddoc">
<p>SDMA core clock frequency half of ARM platform. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga0d831443598fc27a848b06640241c080a0c9654fb7c2ae88c35c97e8b3ab0f462"></a>kSDMA_ARMClockFreq</em>&nbsp;</td><td class="fielddoc">
<p>SDMA core clock frequency equals to ARM platform. </p>
</td></tr>
</table>

</div>
</div>
<a class="anchor" id="gac1b10d21cd1b227dd289eb0fad744ac2"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="group__sdma.html#gac1b10d21cd1b227dd289eb0fad744ac2">sdma_transfer_type_t</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="ggac1b10d21cd1b227dd289eb0fad744ac2a093e03007b762e340d747d5d3b58334f"></a>kSDMA_MemoryToMemory</em>&nbsp;</td><td class="fielddoc">
<p>Transfer from memory to memory. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggac1b10d21cd1b227dd289eb0fad744ac2a0e281ffebe82e273c2658e502a81ee7c"></a>kSDMA_PeripheralToMemory</em>&nbsp;</td><td class="fielddoc">
<p>Transfer from peripheral to memory. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggac1b10d21cd1b227dd289eb0fad744ac2aef1f65710eb5c0a5a5e572d809f31739"></a>kSDMA_MemoryToPeripheral</em>&nbsp;</td><td class="fielddoc">
<p>Transfer from memory to peripheral. </p>
</td></tr>
</table>

</div>
</div>
<a class="anchor" id="gadc1ce96deaaa5299e7370d6c162eb612"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="group__sdma.html#gadc1ce96deaaa5299e7370d6c162eb612">sdma_peripheral_t</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="ggadc1ce96deaaa5299e7370d6c162eb612ac6dc3f40b0bc146d1c896bec285e65d5"></a>kSDMA_PeripheralTypeMemory</em>&nbsp;</td><td class="fielddoc">
<p>Peripheral DDR memory. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggadc1ce96deaaa5299e7370d6c162eb612a0a5ce17f35ef0a09d338df54cf5e3826"></a>kSDMA_PeripheralTypeUART</em>&nbsp;</td><td class="fielddoc">
<p>UART use SDMA. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggadc1ce96deaaa5299e7370d6c162eb612a4b35766548a6ee990df838a09d447d2c"></a>kSDMA_PeripheralTypeUART_SP</em>&nbsp;</td><td class="fielddoc">
<p>UART instance in SPBA use SDMA. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggadc1ce96deaaa5299e7370d6c162eb612a28e7ad3aa4b0a5ec73f432371000b806"></a>kSDMA_PeripheralTypeSPDIF</em>&nbsp;</td><td class="fielddoc">
<p>SPDIF use SDMA. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggadc1ce96deaaa5299e7370d6c162eb612ad33f9568aa791c5d8abdaa0edd1e836f"></a>kSDMA_PeripheralNormal</em>&nbsp;</td><td class="fielddoc">
<p>Normal peripheral use SDMA. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="ggadc1ce96deaaa5299e7370d6c162eb612a746f066b6d3cc1220325428afcf4fd86"></a>kSDMA_PeripheralNormal_SP</em>&nbsp;</td><td class="fielddoc">
<p>Normal peripheral in SPBA use SDMA. </p>
</td></tr>
</table>

</div>
</div>
<a class="anchor" id="ga265c783e56e29d88556d053d6ed6712f"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="group__sdma.html#ga265c783e56e29d88556d053d6ed6712f">_sdma_transfer_status</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="gga265c783e56e29d88556d053d6ed6712fa03cf037d71abc39d5d16d98e07e2e217"></a>kStatus_SDMA_ERROR</em>&nbsp;</td><td class="fielddoc">
<p>SDMA context error. </p>
</td></tr>
<tr><td class="fieldname"><em><a class="anchor" id="gga265c783e56e29d88556d053d6ed6712fae7f535ed8ea581f421d5bce34c0444af"></a>kStatus_SDMA_Busy</em>&nbsp;</td><td class="fielddoc">
<p>Channel is busy and can't handle the transfer request. </p>
</td></tr>
</table>

</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a class="anchor" id="ga63e5054d2b3e2ac6db0bc77a6e555f3c"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void SDMA_Init </td>
          <td>(</td>
          <td class="paramtype">SDMAARM_Type *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="group__sdma.html#structsdma__config__t">sdma_config_t</a> *&#160;</td>
          <td class="paramname"><em>config</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>This function ungates the SDMA clock and configures the SDMA peripheral according to the configuration structure.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>SDMA peripheral base address. </td></tr>
    <tr><td class="paramname">config</td><td>A pointer to the configuration structure, see "sdma_config_t". </td></tr>
  </table>
  </dd>
</dl>
<dl class="section note"><dt>Note</dt><dd>This function enables the minor loop map feature. </dd></dl>

</div>
</div>
<a class="anchor" id="ga2ca9d8092fff698309ddd8413e1ea15d"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void SDMA_Deinit </td>
          <td>(</td>
          <td class="paramtype">SDMAARM_Type *&#160;</td>
          <td class="paramname"><em>base</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>This function gates the SDMA clock.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>SDMA peripheral base address. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ga928c1c71a8cea279eb941c8b239ece93"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void SDMA_GetDefaultConfig </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__sdma.html#structsdma__config__t">sdma_config_t</a> *&#160;</td>
          <td class="paramname"><em>config</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>This function sets the configuration structure to default values. The default configuration is set to the following values. </p>
<div class="fragment"><div class="line">*   config.enableRealTimeDebugPin = <span class="keyword">false</span>;</div>
<div class="line">*   config.isSoftwareResetClearLock = <span class="keyword">true</span>;</div>
<div class="line">*   config.ratio = <a class="code" href="group__sdma.html#gga0d831443598fc27a848b06640241c080a1d092d31f5724c51bdc25a293b3a2124">kSDMA_HalfARMClockFreq</a>;</div>
<div class="line">* </div>
</div><!-- fragment --><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">config</td><td>A pointer to the SDMA configuration structure. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="gaa7b59dc82bebfda229556c999b53f841"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void SDMA_ResetModule </td>
          <td>(</td>
          <td class="paramtype">SDMAARM_Type *&#160;</td>
          <td class="paramname"><em>base</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>If only reset ARM core, SDMA register cannot return to reset value, shall call this function to reset all SDMA register to reset vaule. But the internal status cannot be reset.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>SDMA peripheral base address. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ga7e5912cbe348e787140df4df6518d216"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static void SDMA_EnableChannelErrorInterrupts </td>
          <td>(</td>
          <td class="paramtype">SDMAARM_Type *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>channel</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Enable this will trigger an interrupt while SDMA occurs error while executing scripts.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>SDMA peripheral base address. </td></tr>
    <tr><td class="paramname">channel</td><td>SDMA channel number. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="gaf1f0be3c0a76e1a64b5f836e918a9704"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static void SDMA_DisableChannelErrorInterrupts </td>
          <td>(</td>
          <td class="paramtype">SDMAARM_Type *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>channel</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>SDMA peripheral base address. </td></tr>
    <tr><td class="paramname">channel</td><td>SDMA channel number. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="gaca6942f24e6de8ad946d97598a7e9fbe"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void SDMA_ConfigBufferDescriptor </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__sdma.html#structsdma__buffer__descriptor__t">sdma_buffer_descriptor_t</a> *&#160;</td>
          <td class="paramname"><em>bd</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>srcAddr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>destAddr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__sdma.html#ga758eb6c79509c31397dd944429b10c55">sdma_transfer_size_t</a>&#160;</td>
          <td class="paramname"><em>busWidth</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>bufferSize</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>isLast</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>enableInterrupt</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>isWrap</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__sdma.html#gac1b10d21cd1b227dd289eb0fad744ac2">sdma_transfer_type_t</a>&#160;</td>
          <td class="paramname"><em>type</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>This function sets the descriptor contents such as source, dest address and status bits.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">bd</td><td>Pointer to the buffer descriptor structure. </td></tr>
    <tr><td class="paramname">srcAddr</td><td>Source address for the buffer descriptor. </td></tr>
    <tr><td class="paramname">destAddr</td><td>Destination address for the buffer descriptor. </td></tr>
    <tr><td class="paramname">busWidth</td><td>The transfer width, it only can be a member of sdma_transfer_size_t. </td></tr>
    <tr><td class="paramname">bufferSize</td><td>Buffer size for this descriptor, this number shall less than 0xFFFF. If need to transfer a big size, shall divide into several buffer descriptors. </td></tr>
    <tr><td class="paramname">isLast</td><td>Is the buffer descriptor the last one for the channel to transfer. If only one descriptor used for the channel, this bit shall set to TRUE. </td></tr>
    <tr><td class="paramname">enableInterrupt</td><td>If trigger an interrupt while this buffer descriptor transfer finished. </td></tr>
    <tr><td class="paramname">isWrap</td><td>Is the buffer descriptor need to be wrapped. While this bit set to true, it will automatically wrap to the first buffer descrtiptor to do transfer. </td></tr>
    <tr><td class="paramname">type</td><td>Transfer type, memory to memory, peripheral to memory or memory to peripheral. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ga799b8c29ad2e816e2448ffabdd4a988e"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static void SDMA_SetChannelPriority </td>
          <td>(</td>
          <td class="paramtype">SDMAARM_Type *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>channel</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint8_t&#160;</td>
          <td class="paramname"><em>priority</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>This function sets the channel priority. The default value is 0 for all channels, priority 0 will prevents channel from starting, so the priority must be set before start a channel.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>SDMA peripheral base address. </td></tr>
    <tr><td class="paramname">channel</td><td>SDMA channel number. </td></tr>
    <tr><td class="paramname">priority</td><td>SDMA channel priority. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ga7d17f6656c63920e2d2a1970abe95ab7"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static void SDMA_SetSourceChannel </td>
          <td>(</td>
          <td class="paramtype">SDMAARM_Type *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>source</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>channelMask</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>This function sets which channel will be triggered by the dma request source.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>SDMA peripheral base address. </td></tr>
    <tr><td class="paramname">source</td><td>SDMA dma request source number. </td></tr>
    <tr><td class="paramname">channelMask</td><td>SDMA channel mask. 1 means channel 0, 2 means channel 1, 4 means channel 3. SDMA supports an event trigger multi-channel. A channel can also be triggered by several source events. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ga79d0f9a600307e3382b37fedbaf94082"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static void SDMA_StartChannelSoftware </td>
          <td>(</td>
          <td class="paramtype">SDMAARM_Type *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>channel</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>This function start a channel.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>SDMA peripheral base address. </td></tr>
    <tr><td class="paramname">channel</td><td>SDMA channel number. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="gafae3a665aced95a8d5c61135f419c655"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static void SDMA_StartChannelEvents </td>
          <td>(</td>
          <td class="paramtype">SDMAARM_Type *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>channel</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>This function start a channel.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>SDMA peripheral base address. </td></tr>
    <tr><td class="paramname">channel</td><td>SDMA channel number. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="gaa6a9cbbc9125797b8ca345464c06f1b9"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static void SDMA_StopChannel </td>
          <td>(</td>
          <td class="paramtype">SDMAARM_Type *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>channel</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>This function stops a channel.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>SDMA peripheral base address. </td></tr>
    <tr><td class="paramname">channel</td><td>SDMA channel number. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="gac965bd4c31319485859b8e102993de29"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void SDMA_SetContextSwitchMode </td>
          <td>(</td>
          <td class="paramtype">SDMAARM_Type *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__sdma.html#ga53d935f40711fff7150f4bfdd6fe95a3">sdma_context_switch_mode_t</a>&#160;</td>
          <td class="paramname"><em>mode</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>SDMA peripheral base address. </td></tr>
    <tr><td class="paramname">mode</td><td>SDMA context switch mode. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ga0d28ac87cb22d9cad006d4e97320b3b8"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static uint32_t SDMA_GetChannelInterruptStatus </td>
          <td>(</td>
          <td class="paramtype">SDMAARM_Type *&#160;</td>
          <td class="paramname"><em>base</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>SDMA peripheral base address. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The interrupt status for all channels. Check the relevant bits for specific channel. </dd></dl>

</div>
</div>
<a class="anchor" id="ga55f2efdb37c188a7603d921fc66cbfcb"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static void SDMA_ClearChannelInterruptStatus </td>
          <td>(</td>
          <td class="paramtype">SDMAARM_Type *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>mask</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>SDMA peripheral base address. </td></tr>
    <tr><td class="paramname">mask</td><td>The interrupt status need to be cleared. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="gadfc19c282f5b55dabf7c7d4c30284f79"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static uint32_t SDMA_GetChannelStopStatus </td>
          <td>(</td>
          <td class="paramtype">SDMAARM_Type *&#160;</td>
          <td class="paramname"><em>base</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>SDMA peripheral base address. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The stop status for all channels. Check the relevant bits for specific channel. </dd></dl>

</div>
</div>
<a class="anchor" id="ga3dbda3946690f3c99d21b5975334e3f7"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static void SDMA_ClearChannelStopStatus </td>
          <td>(</td>
          <td class="paramtype">SDMAARM_Type *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>mask</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>SDMA peripheral base address. </td></tr>
    <tr><td class="paramname">mask</td><td>The stop status need to be cleared. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="gad0c01101714d71e78c79ee90151ab9e7"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static uint32_t SDMA_GetChannelPendStatus </td>
          <td>(</td>
          <td class="paramtype">SDMAARM_Type *&#160;</td>
          <td class="paramname"><em>base</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>SDMA peripheral base address. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The pending status for all channels. Check the relevant bits for specific channel. </dd></dl>

</div>
</div>
<a class="anchor" id="gace9cddb0417bc011360351388369f67f"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static void SDMA_ClearChannelPendStatus </td>
          <td>(</td>
          <td class="paramtype">SDMAARM_Type *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>mask</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>SDMA peripheral base address. </td></tr>
    <tr><td class="paramname">mask</td><td>The pending status need to be cleared. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ga6238761b23b3c6b7a0d95afa00d08435"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">static uint32_t SDMA_GetErrorStatus </td>
          <td>(</td>
          <td class="paramtype">SDMAARM_Type *&#160;</td>
          <td class="paramname"><em>base</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>SDMA channel error flag is asserted while an incoming DMA request was detected and it triggers a channel that is already pending or being serviced. This probably means there is an overflow of data for that channel.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>SDMA peripheral base address. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>The error status for all channels. Check the relevant bits for specific channel. </dd></dl>

</div>
</div>
<a class="anchor" id="ga7e37f4e503be946ae126f5233e33d8c9"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">bool SDMA_GetRequestSourceStatus </td>
          <td>(</td>
          <td class="paramtype">SDMAARM_Type *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>source</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">base</td><td>SDMA peripheral base address. </td></tr>
    <tr><td class="paramname">source</td><td>DMA request source number. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>True means the request source is pending, otherwise not pending. </dd></dl>

</div>
</div>
<a class="anchor" id="gaf777aa964e5cf03a07facf8deffd11ee"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void SDMA_CreateHandle </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__sdma.html#structsdma__handle__t">sdma_handle_t</a> *&#160;</td>
          <td class="paramname"><em>handle</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">SDMAARM_Type *&#160;</td>
          <td class="paramname"><em>base</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>channel</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__sdma.html#structsdma__context__data__t">sdma_context_data_t</a> *&#160;</td>
          <td class="paramname"><em>context</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>This function is called if using the transactional API for SDMA. This function initializes the internal state of the SDMA handle.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">handle</td><td>SDMA handle pointer. The SDMA handle stores callback function and parameters. </td></tr>
    <tr><td class="paramname">base</td><td>SDMA peripheral base address. </td></tr>
    <tr><td class="paramname">channel</td><td>SDMA channel number. </td></tr>
    <tr><td class="paramname">context</td><td>Context structure for the channel to download into SDMA. Users shall make sure the context located in a non-cacheable memory, or it will cause SDMA run fail. Users shall not touch the context contents, it only be filled by SDMA driver in SDMA_SubmitTransfer function. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ga02f095ca5ab6a8a5b52b96152465e6fd"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void SDMA_InstallBDMemory </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__sdma.html#structsdma__handle__t">sdma_handle_t</a> *&#160;</td>
          <td class="paramname"><em>handle</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__sdma.html#structsdma__buffer__descriptor__t">sdma_buffer_descriptor_t</a> *&#160;</td>
          <td class="paramname"><em>BDPool</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>BDCount</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>This function is called after the SDMA_CreateHandle to use multi-buffer feature.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">handle</td><td>SDMA handle pointer. </td></tr>
    <tr><td class="paramname">BDPool</td><td>A memory pool to store BDs. It must be located in non-cacheable address. </td></tr>
    <tr><td class="paramname">BDCount</td><td>The number of BD slots. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="gadb5bdca472ad5039473cc53bf7f6ac6e"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void SDMA_SetCallback </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__sdma.html#structsdma__handle__t">sdma_handle_t</a> *&#160;</td>
          <td class="paramname"><em>handle</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__sdma.html#gaf58c0232a81493c44346fac69770dca3">sdma_callback</a>&#160;</td>
          <td class="paramname"><em>callback</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>userData</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>This callback is called in the SDMA IRQ handler. Use the callback to do something after the current major loop transfer completes.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">handle</td><td>SDMA handle pointer. </td></tr>
    <tr><td class="paramname">callback</td><td>SDMA callback function pointer. </td></tr>
    <tr><td class="paramname">userData</td><td>A parameter for the callback function. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ga15697d2f5295a1e844cfd129e9037bbe"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void SDMA_PrepareTransfer </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__sdma.html#structsdma__transfer__config__t">sdma_transfer_config_t</a> *&#160;</td>
          <td class="paramname"><em>config</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>srcAddr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>destAddr</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>srcWidth</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>destWidth</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>bytesEachRequest</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>transferSize</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint32_t&#160;</td>
          <td class="paramname"><em>eventSource</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__sdma.html#gadc1ce96deaaa5299e7370d6c162eb612">sdma_peripheral_t</a>&#160;</td>
          <td class="paramname"><em>peripheral</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__sdma.html#gac1b10d21cd1b227dd289eb0fad744ac2">sdma_transfer_type_t</a>&#160;</td>
          <td class="paramname"><em>type</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>This function prepares the transfer configuration structure according to the user input.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">config</td><td>The user configuration structure of type sdma_transfer_t. </td></tr>
    <tr><td class="paramname">srcAddr</td><td>SDMA transfer source address. </td></tr>
    <tr><td class="paramname">destAddr</td><td>SDMA transfer destination address. </td></tr>
    <tr><td class="paramname">srcWidth</td><td>SDMA transfer source address width(bytes). </td></tr>
    <tr><td class="paramname">destWidth</td><td>SDMA transfer destination address width(bytes). </td></tr>
    <tr><td class="paramname">bytesEachRequest</td><td>SDMA transfer bytes per channel request. </td></tr>
    <tr><td class="paramname">transferSize</td><td>SDMA transfer bytes to be transferred. </td></tr>
    <tr><td class="paramname">eventSource</td><td>Event source number for the transfer, if use software trigger, just write 0. </td></tr>
    <tr><td class="paramname">peripheral</td><td>Peripheral type, used to decide if need to use some special scripts. </td></tr>
    <tr><td class="paramname">type</td><td>SDMA transfer type. Used to decide the correct SDMA script address in SDMA ROM. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section note"><dt>Note</dt><dd>The data address and the data width must be consistent. For example, if the SRC is 4 bytes, the source address must be 4 bytes aligned, or it results in source address error. </dd></dl>

</div>
</div>
<a class="anchor" id="gac0e4a6a850beac832430a82be1257dd3"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void SDMA_SubmitTransfer </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__sdma.html#structsdma__handle__t">sdma_handle_t</a> *&#160;</td>
          <td class="paramname"><em>handle</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="group__sdma.html#structsdma__transfer__config__t">sdma_transfer_config_t</a> *&#160;</td>
          <td class="paramname"><em>config</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>This function submits the SDMA transfer request according to the transfer configuration structure.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">handle</td><td>SDMA handle pointer. </td></tr>
    <tr><td class="paramname">config</td><td>Pointer to SDMA transfer configuration structure. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="gad46a251361077e1a804de5ed1149c3ad"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void SDMA_StartTransfer </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__sdma.html#structsdma__handle__t">sdma_handle_t</a> *&#160;</td>
          <td class="paramname"><em>handle</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>This function enables the channel request. Users can call this function after submitting the transfer request or before submitting the transfer request.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">handle</td><td>SDMA handle pointer. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ga03762a76c03b998b8b1fcb58ba1d790d"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void SDMA_StopTransfer </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__sdma.html#structsdma__handle__t">sdma_handle_t</a> *&#160;</td>
          <td class="paramname"><em>handle</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>This function disables the channel request to pause the transfer. Users can call <a class="el" href="group__sdma.html#gad46a251361077e1a804de5ed1149c3ad" title="SDMA starts transfer. ">SDMA_StartTransfer()</a> again to resume the transfer.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">handle</td><td>SDMA handle pointer. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="gab0775208a9fd1a9b888b6941792f0f4b"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void SDMA_AbortTransfer </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__sdma.html#structsdma__handle__t">sdma_handle_t</a> *&#160;</td>
          <td class="paramname"><em>handle</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>This function disables the channel request and clear transfer status bits. Users can submit another transfer after calling this API.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">handle</td><td>DMA handle pointer. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a class="anchor" id="ga8a06c9b2014e8ed7b155168ef45ac0e4"></a>
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void SDMA_HandleIRQ </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__sdma.html#structsdma__handle__t">sdma_handle_t</a> *&#160;</td>
          <td class="paramname"><em>handle</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>This function clears the interrupt flags and also handle the CCB for the channel.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">handle</td><td>SDMA handle pointer. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- HTML footer for doxygen 1.8.5-->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul class="foot">
    <li class="footer">&copy; 2016 NXP Semiconductors. All rights reserved.
    </li>
  </ul>
</div>
</body>
</html>
